<?php

/**
 * 短信服务类
 * 使用阿里云短信服务发送短信
 * @package app\common\service\third_party_api
 */

namespace app\common\service\third_party_api;

use Flc\DySms\Client;
use Flc\DySms\Request\SendSms;
use think\facade\Config;

class SMSService
{
    /**
     * 短信客户端实例
     * @var Client
     */
    protected $client;

    /**
     * 构造函数
     * 初始化短信客户端
     */
    public function __construct()
    {
        // 获取阿里云访问密钥ID和密钥
        $accessKeyId = Config::get('accessKeyId');
        $accessKeySecret = Config::get('accessKeySecret');
        // 初始化短信客户端
        $this->client = new Client($accessKeyId, $accessKeySecret);
    }

    /**
     * 发送短信验证码
     * @param string $phone 手机号码
     * @param string $code 验证码
     * @return bool 发送结果
     */
    public function send($phone, $code)
    {
        // 创建短信发送请求
        $sendSms = new SendSms;
        // 设置接收手机号码
        $sendSms->setPhoneNumbers($phone);
        // 设置短信签名
        $sendSms->setSignName(Config::get('SignName'));
        // 设置短信模板ID
        $sendSms->setTemplateCode(Config::get('TemplateCode'));
        // 设置模板参数
        $sendSms->setTemplateParam(['code' => $code]);
        // 执行发送请求
        $response = $this->client->execute($sendSms);
        // 返回发送结果
        return $response->isSuccess();
    }
}
